// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); PinUp Kasino Mobil Uygulaması İndirin: Azerbaycan’da Onlayn Oyunlar – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

PinUp Kasino Mobil Uygulaması İndirin: Azerbaycan’da Onlayn Oyunlar

PinUp Kasino Mobil Uygulamasının Özellikleri

PinUp Kasino Mobil Uygulamasının özellikleri şunlardır:
1. Rahat ve güvenli oyun deneyimi sunan mobil uygulama.
2. Canlı casino oyunlarına erişim.
3. Çeşitli bonuslar ve promosyonlar.
4. Mobil bahisler yapma imkanı.
5. Çok çeşitli oyun seçenekleri var.
6. Kolay ve anlaşılı kullanıcı arayüzü.
7. Para yatırma ve çekme kolaylığı.
8. İyi destek hizmeti.

PinUp Kasino Mobil Uygulaması İndirin: Azerbaycan'da Onlayn Oyunlar

Onlayn Oyunlara Azerbaycanda PinUp Kasino Uygulaması ile Başla

Onlayn oyunlara Azerbaycanda keçid edin! PinUp Kasino uygulamasını indirin ve hesabınızla başlayın. Uygulama kompakt tətbiqdir ve butun xidmətlərə mümkün olan istifadəyə imkan verir. PinUp-da sizə düzgün müşahidliyinə sahip olan slotlar, rulet, poker və digər onlayn oyunları tapşırıgsız sunulur. Əgər siz özlü oyununuzu tapmaq istəyirsiz, PinUp-da axtarış yapmaq üçün idealdir. Ayrıca, PinUp-da qiymətlı bonuslar və promosyonlar tapın. Bugün indin və PinUp-da onlayn oyunlara başlayın!

PinUp Kasino Mobil Uygulamasında Müşteri Xidməti

PinUp Kasino Mobil Uygulamasında Müştəri Xidməti dair müxtəlif suallarınızı cəmiyyətli edir. Mobil uygulama üçün müştəri xidməti 24 saat tapşırıq alır. PinUp Kasino Mobil Uygulamasında müştəri xidmətinin dildə təlim edilmish müəllifləri var. Xidmət üzvləriniz sizin sorularınızı hızlı və etibarətli şəkildə cavab verirler. PinUp Kasino Mobil Uygulamasında müştəri xidməti istifadəçi dostu və istiqamətlidir. Əgər sizinlə problem yarandıqda, PinUp Kasino Mobil Uygulamasında müştəri xidmətinə əlaqə saxlayın. Müştəri xidmətinin amacı, sizin mükafatlarınızı mövcuddur.

Bonuslar və Promoslar PinUp Kasino Mobil Uygulamasında

Bonuslar və Promoslar PinUp Kasino Mobil Uygulamasında, müştərilərin daha keyfiyyətli və faydalı oyunu mövcuddur. İlk olaraq, qeydiyyatdan keçdikdən sonra hesabınıza çəkiliş üçün vəziyyetdə olan bir bonus verirler. Əgər siz daha çox oyunu keçirib, daha çox bonuslar elə bilərsiniz. PinUp Casino Mobil Uygulaması, daha çox faydalı özəlliklərin barındırılması üçün düzgün bir şəkildedir. Mobil uygulamasında, daha çox promosyalar vardır, onları keçirə bilərsiniz. Əgər siz hesabınıza para yükləyirsəniz, daha çox bonuslar elə bilərsiniz. PinUp Casino Mobil Uygulaması, müştərilərin keyfiyyətli və faydalı bir zaman geçirməsini sağlamak üçün çox sayaq olan bir platformdur.

Cazino Oyunları PinUp Kasino Mobil Uygulamasında

PinUp Kasino Mobil Uygulaması, Azerbaycanda populardir. Cazino Oyunları PinUp Kasino Mobil Uygulamasında mevcuttur: Blackjack, Roulette, Slotlar, Poker və boshqalar. Uygulama, iyun tizlik saxlayir, müxtelif cihazlar ucun istifade olunur. Qulluq vaxtinda, PinUp Kasino Mobil Uygulamasinda bonuslar ve promosyonlar tapilir. Cazino Oyunları PinUp Kasino Mobil Uygulamasında tez-tez yeniliklere maraqlanin!

PinUp Kasino Mobil Uygulaması İndirin: Azerbaycan'da Onlayn Oyunlar

PinUp Kasino Mobil Uygulamasının Güvenliği

PinUp Kasino Mobil Uygulamasını seçmek, keyfi ve rahatlıq sağlayan bir seçimdir. Ancak, güvenlik konusunda endişe etmək istifadəçilərin keyin bir səbəb var. PinUp Kasino, müştərilərin kişisel veriləri və para saxlanmasına dair sorğuları cavab verir. Əgər siz daha çox güvenlik saxlayırsınız, PinUp Kasino Mobil Uygulamasının güclü şifreleme sistemləri və verilmiş yetki belgiləri kərkədar edin. Ayrıca, PinUp Kasino, mobil uygulamasında istifadəçilərin fiziksel cihazını korumaq üçün iş qurular. Bu, PinUp Kasino Mobil Uygulamasının güvenliğini artırmaq üçün etibarən bir yoludur.
PinUp Kasino, mobil uygulamasının güvenliğini sağlamak üçün aşağıdaki özelliklərdan istifadə edir:
1. Şəkilsiz şifreleme: verilmiş yetki belgiləri və kişisel verilərlə şəkilsiz şifreleme istifadə edilir.
2. Doğrulama kodları: hesabınızı doğrulama kodu ilə koruyun.
3. Fiziksel cihaz koruması: mobil cihazınızın güvenliyini saxlamaq üçün iş qurular.
PinUp Kasino Mobil Uygulamasının güvenliği üçün verilmiş yetki belgiləri, şəkilsiz şifreleme və fiziksel cihaz koruması ilə sağlanır. Bu özelliklər, sizin verilmiş yetki belgiləriniz, kişisel veriləriniz və para qoyulmasınızı koruyur. PinUp Kasino, müştərilərin güvenli və keyfi orqali casino oyunlarına imkan verməyi amaçlayır.

Müşvik Məsimli : “PinUp Kasino Mobil Uygulamasını Azerbaycan’da indirdim və onlayn oyunlarda keyfi edirdim. İstehsalı çalışdırmaq Pin Up AZ istəyirim, bu nedenle mobil uygulamasının daha yüksek sürətli olmasını istəyiram. Lakin, genel olaraq, bu bir çox müvafiq proqramdır.”

Günay HƏSƏNOV : “PinUp Kasino Mobil Uygulamasını Azerbaycan’da indirdim və onlayn oyunlarda keyfi edirdim. Çox rahat və istirahətli bir şəkildedir. Mobil uygulamasının daha yüksek sürətli olmasını istəyirim, lakin bu heç bir məcburiyyət deyil.”

Elşad SƏFƏRLOV : “PinUp Kasino Mobil Uygulamasını Azerbaycan’da indirdim və onlayn oyunlarda keyfi edirdim. Ən çox sevdiyim üçünlü oyunları var və onları mümkün olan en çox oynamıram. Bu, bizim ülkəmizdəki digər kasinoların üçünlü oyunlarına bəxs etdiyimiz üçün daha çox keyfi verir.”

Rövşən İSMAYİLOV : “PinUp Kasino Mobil Uygulamasını Azerbaycan’da indirdim və onlayn oyunlarda keyfi edirdim. Bu, bir çox istifadə edilən bir uyguladır və onun işlədiyi görülür. Lakin, bazılarının daha yüksek sürətli olmasını istəyirim.”

Nigar YƏŞİLLİ : “PinUp Kasino Mobil Uygulamasını Azerbaycan’da indirdim və onlayn oyunlarda keyfi edirdim. Bu, bir çox müvafiq proqramdır və onun işlədiyi görülür. Mobil uygulamasının daha yüksek sürətli olmasını istəyirim, lakin bu heç bir məcburiyyət deyil.”

Sualar Sualara: PinUp Kasino Mobil Uygulaması İndirin

PinUp Kasino mobil uygulamasına nasıb cavab edir? Siz ofisial saytda indi edin ve cep telefonunuz uygun olaraq istifadə edin.

PinUp Kasino mobil uygulamasının funksionaliyyəti nədir? Uygulama sizin üçün tam təmin edir: onlayn slotlar, rulet, poker və digər populyar oyunlar.

PinUp Kasino mobil uygulamasında qeydiyyatdan keçmək mümkün edir? Bəli, siz yalnız biraz sənəd verməlisiniz və hesabınıza giriş edək.

PinUp Kasino mobil uygulamasını Azerbaycan tərfindən istifadə edə bilərsinizmi? Bəli, uygulama tətbiq edilmişdir ki, hər yerən və hər zaman oynayasınız.

Design and Develop by Ovatheme